<?php if (!defined('THINK_PATH')) exit(); /*a:1:{s:63:"E:\WWW\movie.cc\public/../application/admin\view\type\type.html";i:1670916304;}*/ ?>
<!DOCTYPE html>
<html class="x-admin-sm">
    
    <head>
        <meta charset="UTF-8">
        <title>类目列表</title>
        <meta name="renderer" content="webkit">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
        <link rel="stylesheet" href="/static/admin/xadmin/css/font.css">
        <link rel="stylesheet" href="/static/admin/xadmin/css/xadmin.css">
        <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
        <script src="/static/admin/xadmin/lib/layui/layui.js" charset="utf-8"></script>
        <script type="text/javascript" src="/static/admin/xadmin/js/xadmin.js"></script>
        <!-- 让IE8/9支持媒体查询，从而兼容栅格 -->
        <!--[if lt IE 9]>
          <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
          <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
        <![endif]-->
    </head>

    <body>
        <div class="layui-fluid">   

          <div class="layui-card">

            <div class="layui-form layui-card-header layuiadmin-card-header-auto">

              <div class="layui-form-item">

                <style type="text/css">
                  .layui-form-item .layui-inline {
                      margin-bottom: 5px;
                      margin-right: 0px;
                  }
                </style>

                  <label class="layui-form-label">筛选条件:</label>
                  <div class="layui-inline" style="width: 200px;">
                    <select name="id" lay-search>
                      <option value="">请选择类别/参数项</option>
                      <?php if(is_array($type) || $type instanceof \think\Collection || $type instanceof \think\Paginator): $i = 0; $__LIST__ = $type;if( count($__LIST__)==0 ) : echo "" ;else: foreach($__LIST__ as $key=>$vo): $mod = ($i % 2 );++$i;?>
                      <option value="<?php echo $vo['id']; ?>"><?php echo $vo['typename']; ?></option>
                      <?php endforeach; endif; else: echo "" ;endif; ?>
                    </select> 
                  </div>
                 
                <div class="layui-inline">

                  <button class="layui-btn layuiadmin-btn-admin" lay-submit lay-filter="LAY-user-back-search">

                    <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>

                  </button>

                  

                </div>

              </div>

            </div>

            

            <div class="layui-card-body">

              <div style="padding-bottom: 10px;">
                <button class="layui-btn layuiadmin-btn-admin" data-type="add">添加类别</button>


              </div>

              <div id="m_id">
                  <table class="layui-hidden" id="tableObj"></table>
              </div>

              <script type="text/html" id="toolbar">
                  <!-- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="refresh">刷新父节点</a> -->
                  <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a>
                  <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
                  {{#  if(d.level !=3){ }}   
                    <a class="layui-btn layui-btn-xs" lay-event="addzi" >添加子类</a>
                  {{#  }else{ }}   
                    <a class="layui-btn layui-btn-xs" style="visibility: hidden;">添加子类</a>
                  {{#  } }}   
              </script>


              <script type="text/html" id="tableStatus">

                <input type="checkbox" name="status" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="upStatus" {{ d.status == 1 ? "checked" : "" }}>

              </script>
            </div>

          </div>

        </div>
        <script>
          var editObj=null,ptable=null,treeGrid=null,tableId='treeTable',layer=null;

            layui.config({
              base: '/static/admin/layuiadmin/' //静态资源所在路径
            }).extend({
              index: 'lib/index', //主入口模块
            }).use(['index', 'form', 'upload','treeTable','table'], function(){
              var $ = layui.$
              ,form = layui.form
              ,table = layui.table
              ,treeTable = layui.treeTable
              ,upload = layui.upload ;
                var insTb = treeTable.render({
                    elem: '#tableObj',
                    tree: {
                        iconIndex: 0,  // 折叠图标显示在第几列
                        idName: 'id',  // 自定义id字段的名称
                        pidName: 'pid',  // 自定义标识是否还有子节点的字段名称
                        haveChildName: 'haveChild',  // 自定义标识是否还有子节点的字段名称  true/false
                        isPidData: true  // 是否是pid形式数据
                    },
                    text: {   //没有数据时显示
                        none: '<div style="padding: 18px 0;">哎呀，一条数据都没有~</div>'
                    },
                    //event参数 无效
                    cols: [
                        // {type: 'space'},
                        
                        {field: 'typename', title: '参数项', width: 300},
                        {field: 'id', title: 'ID',width:100},
                        {field: 'addtime', title: '创建时间', width: 180},
                        {field: 'sort', title: '排序',edit:'text'},
                        {templet: '#tableStatus', title: '状态', },
                        {align: 'center', toolbar: '#toolbar', title: '操作', width: 300}
                    ],
                    reqData: function(data, callback) {   //每次点击下箭头就会触发这个方法
                        // 在这里写ajax请求，通过callback方法回调数据
                        var pid = data?data.id:0;
                        $.ajax({
                             type: "POST",
                             url: "<?php echo url('/admin/type/lst'); ?>",
                             data:{pid:pid},
                             success: function(res){
                              console.log(res.data)
                              callback(res.data);  //这个回调方法 
                             }

                          });
                    }
                });
                //tool(tableObj) tableObj是表格的id 
                // 监听工具条点击事件：  操作 和 表格中的event  事件
                // update() 和 del() 接口可以用 obj, refresh(id)刷新指定节点下的数据必须用 treeTable实例对象 insTb
                treeTable.on('tool(tableObj)', function(obj){
                  var data = obj.data;  // 获得当前行数据
                  var event = obj.event; // 获得lay-event对应的值
                  console.log(event);
                  if(event === 'del'){
                      var id=data.id;
                      layer.confirm('确认要删除吗？',function(index){
                      $.ajax({
                           type: "POST",
                           url: "<?php echo url('/admin/type/do_del'); ?>",
                           data: {id:id},
                           success: function(msg){
                             if(msg==1){
                                
                                layer.msg('删除成功', {
                                  offset: '15px'
                                  ,icon: 1
                                  ,time: 1000
                                });
                                obj.del(); // 删除对应行，并更新缓存
                             }else if(msg ==2){
                              layer.msg('删除失败,下面还有类目', {
                                offset: '15px'
                                ,icon: 2
                                ,time: 1000
                              });
                             }else{
                              layer.msg('删除失败', {
                                offset: '15px'
                                ,icon: 2
                                ,time: 1000
                              });
                             }
                           }
                      });
                       
                    });
                    
                  }else if(event ==='addzi'){
                    var pid=data.id;
                    layer.open({
                      type: 2
                      ,title: '添加参数项'
                      ,content: "<?php echo url('/admin/type/add'); ?>?pid="+pid
                      ,maxmin: true
                      ,area: ['40%', '60%']
                      ,btn: ['确定', '取消']
                      ,yes: function(index, layero){
                        var iframeWindow = window['layui-layer-iframe'+ index]
                        ,submitID = 'LAY-user-front-submit'
                        ,submit = layero.find('iframe').contents().find('#'+ submitID);

                          //监听提交
                          iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
                              var field = data.field; //获取提交的字段
                              $.ajax({
                                 type: "POST",
                                 url: "<?php echo url('/admin/type/add'); ?>",
                                 data: field,
                                 success: function(res){
                                   if(res.code==1){
                                      layer.msg(res.msg, {
                                        offset: '15px'
                                        ,icon: 1
                                        ,time: 1000
                                      });
                                      insTb.refresh(pid);  //刷新父级页面
                                      layer.close(index); //关闭弹层
                                   }else{
                                      layer.msg(res.msg, {
                                      offset: '15px'
                                      ,icon: 2
                                      ,time: 1000
                                    });
                                   }
                                 }
                              });
                                
                          });  
                              
                        submit.trigger('click');
                      }
                    }); 



                  }else if(event ==='refresh'){
                    // 同步更新缓存对应的值 
                    // insTb.refresh(id);  // 刷新指定节点下的数据(异步模式)
                    insTb.refresh(obj.data.pid);




                  }else if(event ==='edit'){
                    var id=data.id;
                    layer.open({
                        type: 2
                        ,title: '修改'
                        ,content: "<?php echo url('/admin/type/update'); ?>?id="+id
                        ,maxmin: true
                        ,area:['40%', '60%']
                        ,btn: ['确定', '取消']
                        ,yes: function(index, layero){
                          var iframeWindow = window['layui-layer-iframe'+ index]
                          ,submitID = 'LAY-user-front-submit'
                          ,submit = layero.find('iframe').contents().find('#'+ submitID);

                          //监听提交
                          iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
                            var field = data.field; //获取提交的字段
                            
                            $.ajax({
                             type: "POST",
                             url: "<?php echo url('/admin/type/update'); ?>?id="+id,
                             data: field,
                             success: function(res){
                               if(res.code==1){
                                  layer.msg(res.msg, {
                                    offset: '15px'
                                    ,icon: 1
                                    ,time: 1000
                                  });
                                  // insTb.refresh(obj.data.pid);  //刷新父级页面
                                  obj.update(field);   //更新当前数据
                                layer.close(index); //关闭弹层
                               }else{
                                  layer.msg(res.msg, {
                                  offset: '15px'
                                  ,icon: 2
                                  ,time: 1000
                                });
                               }
                             }
                          });
                            
                          });  
                          
                          submit.trigger('click');
                        }
                    });
                  }
                });
                //监听复选框选择：
                treeTable.on('checkbox(tableObj)', function(obj){
                    console.log(obj.checked);  // 当前是否选中状态
                    console.log(obj.data);  // 选中行的相关数据 如果触发的是全选，则为：undefined
                    console.log(obj.type);  // 如果触发的是全选，则为：all，如果触发的是单选，则为：one
                });
                //单元格编辑
                treeTable.on('edit(tableObj)', function(obj){
                  //   console.log(obj.value); //得到修改后的值
                  //   console.log(obj.field); //当前编辑的字段名
                  //   console.log(obj.data); //所在行的所有相关数据  
                  $.ajax({

                         type: "POST",

                         url: "<?php echo url('/admin/type/up_sort'); ?>",

                         data:{sort:obj.value,id:obj.data.id},

                         success: function(msg){

                          console.log(msg)

                          if(msg==1){

                           layer.msg("设置成功", {

                                offset: '15px'

                                ,icon: 1

                                ,time: 1000

                              });
                           insTb.refresh(obj.data.pid);  //刷新父级
                          }else if(msg==3){
                            layer.msg("设置成功", {

                                offset: '15px'

                                ,icon: 1

                                ,time: 1000

                              });
                            insTb.refresh(obj.data.pid);  //刷新父级
                          }else{
                            layer.msg("设置失败", {

                                offset: '15px'

                                ,icon: 2

                                ,time: 1000

                              });
                          }
                         }

                      });
                });
                //监听状态操作
                form.on('switch(upStatus)', function(data){
                  var id=this.value;
                  console.log(id)
                      $.ajax({
                           type: "POST",
                           url: "<?php echo url('/admin/type/up_status'); ?>?id="+id,
                           data:"",
                           success: function(msg){
                            console.log(msg)
                            if(msg==1){
                             layer.msg("禁用成功", {
                                  offset: '15px'
                                  ,icon: 1
                                  ,time: 1000
                                });
                            }else if(msg==2){
                              layer.msg("禁用失败", {
                                  offset: '15px'
                                  ,icon: 2
                                  ,time: 1000
                                });
                            }else if(msg==3){
                              layer.msg("启用成功", {
                                  offset: '15px'
                                  ,icon: 1
                                  ,time: 1000
                                });
                            }else{
                              layer.msg("启用失败", {
                                  offset: '15px'
                                  ,icon: 2
                                  ,time: 1000
                                });
                            }
                           }
                        });
                });  

                //监听搜索
                form.on('submit(LAY-user-back-search)', function(data){
                  var id = data.field.id;
                  var typename = data.field.typename;
                  $.ajax({
                       type: "POST",
                       url: "<?php echo url('/admin/type/lst'); ?>",
                       data:{id:id,typename:typename},
                       success: function(res){
                        console.log(res.data)
                        insTb.refresh(res.data);  //这个回调方法 
                       }

                    });
                }); 
                var active = {
                  add: function(){
                    layer.open({
                      type: 2
                      ,title: '添加类别'
                      ,content: "<?php echo url('/admin/type/add'); ?>?pid=0"
                      ,maxmin: true
                      ,area:['40%', '60%']
                      ,btn: ['确定', '取消']
                      ,yes: function(index, layero){
                        var iframeWindow = window['layui-layer-iframe'+ index]
                        ,submitID = 'LAY-user-front-submit'
                        ,submit = layero.find('iframe').contents().find('#'+ submitID);

                        //监听提交
                        iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
                          var field = data.field; //获取提交的字段
                          // layer.alert(JSON.stringify(data.field), {
                          //   title: '最终的提交信息'
                          // })
                          $.ajax({
                           type: "POST",
                           url: "<?php echo url('/admin/type/add'); ?>",
                           data: field,
                           success: function(res){
                            console.log(res)
                             if(res.code==1){
                                layer.msg(res.msg, {
                                  offset: '15px'
                                  ,icon: 1
                                  ,time: 1000
                                });
                                insTb.refresh(); 
                                layer.close(index); //关闭弹层
                             }else{
                                layer.msg(res.msg, {
                                offset: '15px'
                                ,icon: 2
                                ,time: 1000
                              });
                             }
                           }
                        });
                          
                        });  
                        
                        submit.trigger('click');
                      }
                    }); 
                  }
                } 
                $('.layui-btn.layuiadmin-btn-admin').on('click', function () {    //5. 必写方法，绑定按钮的class，点击即运行这个方法，
                    var type = $(this).data('type');　　　　　　　　　　　　　　　　　　　　　　//获取按钮中的 data-type,也就是 "add"
                    active[type] ? active[type].call(this) : '';　　　　　　　　　　　　　　　　//获取到"add"之后 运行add方法
                });
            })
        </script>
    </body>
</html>
<!-- var insTb = treeTable.render({ });

// 刷新
insTb.reload(options);   // 重载表格
insTb.refresh();  // 刷新(异步模式)
insTb.refresh(data);  // 刷新(数据模式) data为查出来的数据
insTb.refresh(id);  // 刷新指定节点下的数据(异步模式)
insTb.refresh(id, data);  // 刷新指定节点下的数据(数据模式)

// 复选框
insTb.checkStatus();  // 获取选中数据(是否是半选会有一个isIndeterminate字段标识)
insTb.checkStatus(false);  // 获取选中数据，不要半选状态
insTb.setChecked(['1','2']);  // 设置选中数据
insTb.removeAllChecked();  // 移除全部选中

// 折叠/展开
insTb.expand(id);  // 展开指定节点
insTb.fold(id);  // 折叠指定节点
insTb.expandAll();  // 展开全部
insTb.foldAll();  // 折叠全部

// 搜索
insTb.filterData('keywords');   // 根据关键字模糊搜索   只有已经加载到缓存中的数据才可以查出来
insTb.filterData(['1','2']);   // 根据id搜索 只有已经加载到缓存中的数据才可以查出来
insTb.clearFilter();   // 清除搜索

// 更新数据(只更新数据，不更新界面) obj 为当前行对象,不是tableTree对象
obj.del(id);   // 根据id删除   没有用
obj.del();    //删除当前行
obj.update(id, fields);  // 根据id更新  没有用
obj.update(fields); 更新新当前行数据      -->
